package com.example.demo.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demo.entity.Product;

import java.math.BigDecimal;
import java.util.List;

/**
 * 商品服务接口
 */
public interface ProductService {
    /**
     * 添加商品
     */
    void addProduct(Product product);

    /**
     * 更新商品信息
     *
     * @return
     */
    Product updateProduct(Product product);

    /**
     * 删除商品
     */
    void deleteProduct(Integer productId);

    /**
     * 获取商品详情
     */
    Product getProduct(Integer productId);

    /**
     * 获取所有可用商品
     */
    List<Product> getAvailableProducts();

    /**
     * 更新商品库存
     */
    void updateStock(Integer productId, Integer stock);

    Product getProductById(Integer productId);

    List<Product> getAllProducts();

    List<Product> getProductsByCategory(Integer categoryId);

    List<Product> getProductsByMerchant(Integer merchantId);

    List<Product> getPetProducts(boolean isPet);

    List<Product> searchProducts(String keyword);

    List<Product> getProductsByPriceRange(BigDecimal minPrice, BigDecimal maxPrice);

    IPage<Product> page(Page<Product> page);

    Product createProduct(Product product);
}